$(document).ready(function() {
	
	var viewStart,viewEnd;
	
	var VAL ={
        NORMAL : "0000000"  ,
        EVT_USER : $("#userId").text(),
        T_FBPBISOPE : 'FBPBISOPE',
        T_FBPBISTOL : 'FBPBISTOL',
        T_MTPTOOLPM : 'MTPTOOLPM',
        DISABLED_ATTR : {
            'disabled' : true
        },
        ENABLED_ATTR : {
            'disabled' : false
        }
    };

	var domObj = {
		$bayIdSel : $("#bayIdSel"),
		$opeIdSel : $("#opeIdSel"),
		$toolIdSel : $("#toolIdSel"),
        $shiftId : $("#shiftId"),
		$calendar : $("#calendar"),
		
		buttons : {
			$query_btn : $("#query_btn")
		}
	};
	
	var controlsFunc={
        //初始化班别
        initShiftFnc : function(){
        comAddValueByDataCateFnc("#shiftId","SHIF","data_id","data_desc",true,false);
        },
    	iniBayInfo : function(){//初始化线别
            comAddValueByDataCateFnc("#bayIdSel", "AREA", "data_ext", "data_desc", true);
    	},
    	iniOpeInfo : function(){//初始化站点
            var inObj = {
                trx_id : VAL.T_FBPBISOPE,
                action_flg : "L"
            };
            var outObj = comTrxSubSendPostJson(inObj);
            if (outObj.rtn_code == VAL.NORMAL) {
                _setOpeSelectDateMore(outObj.tbl_cnt, outObj.oary, "ope_id", "ope_ver", "proc_id", "toolg_id", "ope_dsc", domObj.$opeIdSel, true);
            }
    	},
    	iniToolInfo : function(){//初始化设备
            var bayId  = $.trim(domObj.$bayIdSel.val());
            var opeIdInfo= $.trim(domObj.$opeIdSel.val()).split("@");
            var toolGroupId = opeIdInfo[3];

            var inObj = {
                trx_id : VAL.T_FBPBISTOL,
                action_flg : "Q",
                iary : [{
                    bay_id     : bayId,
                    tool_group_id_fk   : toolGroupId
                }]
            };
            var outObj = comTrxSubSendPostJson(inObj);
            if (outObj.rtn_code == VAL.NORMAL) {
                SelectDom.addSelectArr(domObj.$toolIdSel, outObj.oary, "tool_id","tool_dsc",true, true);
            }
    	},
    	/**
    	 * PM设定新增和修改
    	 */
//    	pmSettingChangeFnc : function(click_event,dialog_title,tool_id,pm_date,evt_seq_id,pm_seq_id,pm_typ){
//    		/**
//    		 * 初始化保养类型
//    		 */
//    		function iniPMTyp(){
//    			var iary = {
//    					data_cate  : "PMTP"
//    			};
//    			
//    			VAL.pm_data = setSelectByBISDataObj(iary, "ext_1", "data_desc");
//    			$("#PMChangeDialog_pmTypeSelect").select2({
//    				theme : "bootstrap",
//    				width:280,
//    				data: VAL.pm_data
//    			});
//    			if(pm_typ){
//    				$("#PMChangeDialog_pmTypeSelect").val(pm_typ).trigger("change");
//    			}
//    		}	
//    		
//    		/**
//    		 * 根据设备编号和保养类型获取保养项目
//    		 */
//    		function queryPmItemFnc(){
//    			if(!tool_id){
//    				return false;
//    			}
//    			var pm_typ = $.trim($("#PMChangeDialog_pmTypeSelect").val());
//    			if(!pm_typ){
//    				return false;
//    			}
//    			var inTrxObj ={
//    	  			  trx_id     : 'XPMLITEM',
//    	  			  action_flg : 'I',
//    	  			  tool_id    : tool_id,
//    	  			  pm_type    : pm_typ,
//    			};
//    			var  outTrxObj = comTrxSubSendPostJson(inTrxObj);
//    			if(  outTrxObj.rtn_code == _NORMAL ) {
//    				setGridInfo(outTrxObj.oaryA,"#PMChangeDialog_pmItemListGrd");
//    				dialogAddGridButton();
//    			}
//    		}
//    		
//    		function dialogAddGridButton(){
//    		    var ids=$("#PMChangeDialog_pmItemListGrd").jqGrid('getDataIDs');
//    		    for(var i=0; i<ids.length; i++){
//    		        var id=ids[i];   
//    		        var deleteItem = "<button id=" + "'del" + ids[i] + "'" + " style='color:#f60'>删除</button>";  
//    		        $("#PMChangeDialog_pmItemListGrd").jqGrid('setRowData', ids[i], {deleteItem:deleteItem});
//    		        $("#del" + ids[i]).click( dialogDeleteFnc );
//    		    }  
//    		}
//    		
//    		function dialogDeleteFnc(){
//    		    $("#PMChangeDialog_pmItemListGrd").jqGrid("delRowData",this.id.substr(3));
//    		}
//    		
//    		//初始化页面
//    	    function iniDialogFnc(){
//    	    	$("#PMChangeDialog_titleTxt").text("");
//    	    	$("#PMChangeDialog_toolIdTxt").text("");
//    	    	$("#PMChangeDialog_pmTypeSelect").empty();
//    	    	$("#PMChangeDialog_plnStbDateTxt").val("");
//    			$("#PMChangeDialog_evtSeqIdTxt").text("");
//    			if(click_event=="Day"){
//    				$("#radioDiv").hide();
//    				$("#PMChangeDialog_pmTypeSelect").attr("disabled",false);
//    			}else if(click_event="Event"){
//    				$("#radioDiv").show();
//    				$('input:radio[name=changeTyp]:nth(0)').attr('checked',true);
//    				$("#PMChangeDialog_pmTypeSelect").attr("disabled",true);
//    			}
//    			$("#PMChangeDialog_pmItemListGrd").jqGrid("clearGridData");
//    			$("#PMChangeDialog_titleTxt").text(dialog_title);
//    			$("#PMChangeDialog_toolIdTxt").text(tool_id);
//    			$("#PMChangeDialog_plnStbDateTxt").val(pm_date);
//    			$("#PMChangeDialog_evtSeqIdTxt").text(evt_seq_id);
//    			iniPMTyp();
//    			queryPmItemFnc();
//    	    }
//       
//    	    //保存设定
//    	    function dialogSaveFnc(){
//    	    	var iaryA = new Array();
//    	    	if(!tool_id){
//        			return false;
//        		}
//        		var pm_type = $.trim($("#PMChangeDialog_pmTypeSelect").val());
//        		if(!pm_type){
//        			return false;
//        		}
//        		var pm_date = $.trim($("#PMChangeDialog_plnStbDateTxt").val());
//        		if(!pm_date){
//        			return false;
//        		}
//        		var rowIDs = $("#PMChangeDialog_pmItemListGrd").jqGrid("getDataIDs");
//    		    if(rowIDs.length<=0){
//    		    	return false;
//    		    }
//    			for( var i =0;i<rowIDs.length;i++){
//    				var rowData = $("#PMChangeDialog_pmItemListGrd").jqGrid('getRowData',rowIDs[i]);
//    				var itemInfo = {
//    						data_dsc : rowData['data_dsc'],
//    						l_spec   : rowData['l_spec'],
//    						u_spec   : rowData['u_spec'],
//    						data_cnt : rowData['data_cnt']
//    				};
//    				iaryA.push(itemInfo);
//    			}
//    			
//    	    	if(click_event=="Day"){//新增
//    	    		var inTrxObj ={
//    	      			  trx_id     : 'XPTOOLPM',
//    	      			  action_flg : 'S',
//    	      			  tool_id_fk : tool_id,
//    	      			  pm_typ     : pm_type,
//    	      			  from_date  : pm_date,
//    	      			  evt_usr    : evt_user,
//    	      			  iaryA      : iaryA
//    	    		};
//    				var  outTrxObj = comTrxSubSendPostJson(inTrxObj);
//    				if(  outTrxObj.rtn_code == _NORMAL ) {
//    					showMessengerSuccessDialog("设定保存成功！",1);
//    					$("#PMChangeDialog").modal('hide');
//    				}
//    			}else if(click_event="Event"){//修改
//    				var change_typ = $('input:radio[name=changeTyp]:checked').val();
//    				var inTrxObj ={
//    		  			  trx_id     : 'XPTOOLPM',
//    		  			  action_flg : 'U',
//    		  			  tool_id_fk : tool_id,
//    		  			  from_date  : pm_date,
//    		  			  evt_seq_id : evt_seq_id,
//    		  			  pm_seq_id  : pm_seq_id,
//    		  			  evt_usr    : evt_user,
//    		  			  change_typ : change_typ,
//    		  			  iaryA      : iaryA
//    				};
//    				var  outTrxObj = comTrxSubSendPostJson(inTrxObj);
//    				if(  outTrxObj.rtn_code == _NORMAL ) {
//    					showMessengerSuccessDialog("设定保存成功！",1);
//    					$("#PMChangeDialog").modal('hide');
//    				}
//    			}
//    	    	queryPmSettingFnc();
//    	    }
//          /*****
//            当多次弹出对话框的同时也会多次绑定click事件。
//            解决办法: 在show Dialog时将click unbind全部掉
//                      然后再绑定，这样就只剩下一个click事件了。
//          **********/
//    	    $("#PMChangeDialog").unbind('shown.bs.modal');
//    	    $("#PMChangeDialog_saveBtn").unbind('click');
//    	    $("#PMChangeDialog_pmTypeSelect").unbind('change');
//    	    iniDialogFnc();
//    	    $("#PMChangeDialog_saveBtn").bind('click',dialogSaveFnc);
//    	    $("#PMChangeDialog_pmTypeSelect").bind('change',queryPmItemFnc);
//    	    $("#PMChangeDialog").modal('show');
//    	}
	};
	
	var btnFunc = {
		queryFunc : function(){//查询设备对应的保养设定
			var tool_id = $.trim(domObj.$toolIdSel.val());
		/*	if(!tool_id){
                showErrorDialog("", "设备代码不能为空!");
				return false;
			}*/
		    var shift_id_fk  = $("#shiftId").val();
			domObj.$calendar.fullCalendar("removeEvents");
			var inTrxObj = {
	 				trx_id     : VAL.T_MTPTOOLPM ,
	 				action_flg : 'Q',
	 				tool_id_fk : tool_id,
					from_date  : viewStart,
					to_date    : viewEnd,
                    shift_id_fk : shift_id_fk
	 				
	 		};
	 		var outTrxObj = comTrxSubSendPostJson(inTrxObj);
	 		if( outTrxObj.rtn_code == VAL.NORMAL ) {	            
 				domObj.$calendar.fullCalendar("addEventSource",outTrxObj.oaryC);
	 		}
		}
	};
	
	/**
     * 绘制日程信息
     */
    domObj.$calendar.fullCalendar({
        theme: true,
        header: {
            left: 'prev,next today',
            center: 'title',
            right: 'month,basicWeek'
        },
        firstDay: 0,
        aspectRatio:2.2,
        weekMode:'liquid',
        titleFormat: {
        	month: 'MMMM yyyy',
        	week: "MMMd日[ yyyy]{'—'[ MMM]d日 yyyy}" 
        },
        buttonText: {
            today: 'Today',
            month: '月',
            week: '周'
        },
        monthNames: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"],
        monthNamesShort: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"],
        dayNames: ["日", "一", "二", "三", "四", "五", "六"],
        dayNamesShort: ["日", "一", "二", "三", "四", "五", "六"],
        viewDisplay: function (view) {
        	viewStart = $.fullCalendar.formatDate(view.start, "yyyy-MM-dd HH:mm:ss");
        	viewEnd = $.fullCalendar.formatDate(view.end, "yyyy-MM-dd HH:mm:ss");
        /*	btnFunc.queryFunc();*/
        },
       dayClick: function(date){
       	var tool_id = $.trim(domObj.$toolIdSel.val());
   		if(!tool_id){
   			return false;
   		}
   		var pm_date = $.fullCalendar.formatDate(date, "yyyy-MM-dd");
       //	pmSettingChangeFnc("Day","新增保养设定——",tool_id,pm_date);
       },
       eventClick: function (event) {
       	var tool_id    = event.tool_id;
       	var evt_seq_id = event.evt_seq_id;
       	var pm_type    = event.pm_type;
       	var start      =  $.fullCalendar.formatDate(event.start, "yyyy-MM-dd");
   		if(!tool_id || !evt_seq_id || !pm_type|| !start){
   			return false;
   		}
   		var pm_NO = start.replace(/\-/g, "") + pm_type;
       	window.open("3000/3740_PAGE/loginRtn.do?opeID=3740"
       			+ "&tool_id=" + tool_id
       			+ "&evt_seq_id=" + evt_seq_id+ "&pm_NO="+pm_NO,"_self");
       }
    });
    
    /**
     * Ini contorl's data
     */
    var iniContorlData = function(){
    	controlsFunc.iniBayInfo();
    	controlsFunc.iniOpeInfo();
    	controlsFunc.iniToolInfo();
    	controlsFunc.initShiftFnc();
    };
    
    /**
     * Bind button click action
     */
    var iniButtonAction = function(){
    	domObj.buttons.$query_btn.click(function(){
    		btnFunc.queryFunc();
    	});
    };
    
    /**
     * Other action bind
     */
    var otherActionBind = function(){
	    $("form").submit(function(){
	        return false;
	    });
	    
	    domObj.$bayIdSel.change(function(){
	    	controlsFunc.iniToolInfo();
	    });
	    
	    domObj.$opeIdSel.change(function(){
	    	controlsFunc.iniToolInfo();
	    });
        domObj.$toolIdSel.change(function(){
            btnFunc.queryFunc();
        });
    };

    /**
     * Ini view, data and action bind
     */
    var initializationFunc = function(){
    	iniContorlData();
    	iniButtonAction();
    	otherActionBind();
        btnFunc.queryFunc();
    };
    
    initializationFunc();
});